package com.haiwen.cookie.servletcontext;


import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 韩要雷
 *
 * ServletContext对象
 *    每一个web程序启动时都会生成这个应用程序对像
 *
 *    作用域说明：
 *    1.request 作用域---请求转发 在一次请求中有效
 *    2.session 作用域---在一次会话中有效 session销毁即失效 无论转发还是重定向
 *    3.ServletContext作用域---在整个应用程序中有效--服务器关闭，这个对象就失效
 */
@WebServlet("/context")
public class Context extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //1.通过request对像获取
        ServletContext servletContext = req.getServletContext();

        //2.通过session对像进行获取
        ServletContext servletContext1 = req.getSession().getServletContext();

        //3.通过ServletConfig对象获取
        ServletContext servletContext2 = getServletConfig().getServletContext();

        //4.直接获取，在servlet中提供了直接获取ServletContext的方法
        ServletContext servletContext3 =  getServletContext();

        //比较常用方法
        System.out.println("获取服务器信息："+ servletContext.getServerInfo());
        System.out.println("获取项目的真实路径：" + servletContext.getRealPath("/") );
    }
}
